#pragma once

#include "vec3.h"

class Agent
{
public:
            Agent();

    void    Tick(float fDeltaTime);

    void    UpdateAI(float fDeltaTime);
    void    UpdatePhysics(float fDeltaTime);

    void    Render();

    void    SetSpeed(vec3 speed) { m_vSpeed = speed; }
    vec3    GetSpeed() { return m_vSpeed; }

    void    SetPosition(vec3 position) { m_vPosition = position; }
    vec3    GetPosition() { return m_vPosition; }

    void    SetRadius(float radius) { m_fRadius = radius; }
    float   GetRadius() { return m_fRadius; }

    void    SetColor(unsigned int color) { m_Color = color; }

	float	AnticipateCollideTime(Agent* o);

private:
	
    // Members 
    vec3    m_vSpeed;
    vec3    m_vPosition;

    float   m_fRadius;
    unsigned int m_Color;
};